package List$Stack$queue;

import common.ListNode;

/**
 * 判断链表中是否有环
 * 快慢指针法，快指针一次走两步，慢指针一次走一步，如果能够相遇，则链表有环，
 * 如果快指针走到了 null，则链表无环
 */
public class LinkedListCycle {
    public boolean hasCycle(ListNode head) {
        ListNode fast = head;
        ListNode slow = head;
        while (fast != null && fast.next != null){
            fast = fast.next.next;
            slow = slow.next;
            if (fast == slow) return true;
        }
        return false;
    }
}
